package com.example.demo.web;

import com.example.demo.dao.UserMapper;
import com.example.demo.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@RequestMapping("user")
@Controller
public class UserController {

    @Autowired
    UserMapper userMapper;

    @RequestMapping("index")
    //测试页面
    public String index(){
        return "";
    }

    @RequestMapping("list")
    @ResponseBody
    public List<User> list(){
        //查询
        List<User> list = userMapper.list();
        return list;
    }

    //利用map.put()方法将查询到的数据传到list.html里
    @RequestMapping("listhtml")
    public String listhtml(ModelMap map){
        List<User> list = userMapper.list();
        map.put("userList",list);
       /* for (User user : list) {
            System.out.println(user.getId());
            System.out.println(user.getName());
            System.out.println(user.getAge());
        }*/
        return "/user/list";
    }

    @RequestMapping("add")
    public String add(){
        //添加，这个方法可以跳转到add.html页面
        return "/user/add";
    }

    //    @RequestMapping(value = "add",method = RequestMethod.POST)
    @PostMapping("save")
    public String save(User user){
        //真正添加的方法
        userMapper.save(user);
        //redirect:  是重定向，访问save会重定向到/user/listhtml
        return "redirect:/user/listhtml";
    }

    @PostMapping("update")
    public String updateSave(User user){
        //真正修改的方法
        userMapper.update(user);
        return "redirect:/user/listhtml";
    }

    @GetMapping("update/{id}")
    public String update(@PathVariable("id") String id, ModelMap map){
        //可以利用单查  将ID传给user，然后利用 map.put("user",user);将数据传到页面
        //这个方法的作用：点击修改按钮后，跳转页面，让修改的框里有你要修改的数据列表
        User user = userMapper.seleteUserById(id);
        map.put("user",user);
        return "/user/update";
    }

    @RequestMapping("delete/{id}")
    public String delete(@PathVariable("id") String id){
        //删除   删除只需要一个ID就可以
        userMapper.delete(id);
        return "redirect:/user/listhtml";
    }
}
